We recommend that if you are using input sprocket version greater than 1.02 that you no longer support any third party joystick APIs. We will
have drivers supporting those APIs directly and the two things would conflict.
High Level Release Notes
If you are using input sprocket via the high level (ISpConfigure and ISpInit and so on). I recommend that you only use the axis and
button data types and build the controls that you need out of those types. This will get you the best support. Many of the drivers
are going to only primarily emulate those datatypes.
Additionally InputSprocket needs a 640x480 display inorder for its dialog to work. If you are asking drawsprocket for a smaller display
size than that you should switch out before calling input sprocket.
AbsoluteTime and UnsignedWide are in the latest types.h (ETO #20 or later). /*typedef UnsignedWide AbsoluteTime; struct UnsignedWide {UInt32 hi;UInt32 lo;};*/
Information about how to get saved sets ('setl' Resources) to work is below under the InputSprocket 1.0 Release Notes
Known Problems
--------------
- Kensington Trackball does not appear if Kensington software is installed (appears w/o Kensington software)
- ALPS GlidePoint does not appear is ALPS software is installed (appears w/o ALPS software)
- Mouse Systems Mouse does not appear if Mouse Systems software ('3-Button Power') is installed (appears w/o Mouse Systems software)
- CoStar Stingray Trackball does not appear if CoStar software ('Stingray') is installed (appears w/o CoStar software)
- CH Trackball PRO does not appear
- Thrustmaster software generates keyDowns if so configured with ThrustWare (fix is to configure all buttons to do nothing in ThrustWare)
Changes from 1.02
-----------------
- new APIs (ISpStartup, ISpShutdown, ISpTickle, ISpDevices_ActivateClass, ISpDevices_DeactivateClass)
- some general ui improvements in both appearance and performance have been made
- new driver InputSprocket Joy (supports some features of JoyManager devices -- ie mainly CH products)
- new driver InputSprocket Thrustmaster (supports FCS, WCS, RCS)
- new driver InputSprocket Gravis (supports MouseStick, Firebird, GamePad)
- new driver InputSprocket Speech (you must activate explicitly and requires ISpTickle be called)
- InputSprocket Mouse changed to have new UI and is implemented via ADBMgr directly instead of a CursorDeviceMgr Patch
- InputSprocket Keyboard has been slightly changed if there is only one page
- driver function to plot icons has been changed (faster)
- bug when you select a 0 length name to save a set has been fixed
- bug involving choosing monitor has been fixed (might chose something other than the main monitor randomly)
- CH Flightstick, CH Gamepad, CH Jetstick and MacEnjoy no longer generate a mouse device
- a crashing bug involving multiple applications using input sprocket simultaniously has been fixed
- a very small memory leak involving ISpConfigure has been fixed
- DONT_USE_OLD_INPUT_SPROCKET_LABELS changed to USE_OLD_INPUT_SPROCKET_LABELS in InputSprocket.h
- a bug where InputSprocket Keyboard and InputSprocket Mouse called InitGraf has been fixed
Incomplete list of devices input sprocket supports
- supports all JoyManager devices as a single input sprocket device.
- UI may show popups for controls the device does not have
- JoySimpleData based
- only supports the trigger and three additional buttons
- digital pointing devices (ex. CH Gamepad's pad) are treated as a pair of axis not a POV Hat
InputSprocket 1.02
Release Notes
-----------------
There is a new InputSprocket.h that has new versions of the names for the labels as well as additional labels.
The following bugs were fixed in the 1.01 or the 1.02 releases.
- keyboard ui now generates better names than Min/Max for axis if ElementLabel is useful
- various problems with alignment and growing of dialog were fixed
- flickering with icons in thrustmaster and mouse fixed
- stub library included in this release with file type 'stub'
- axis flipping check box now works again for the mouse driver
- ISpDevices_Extract functions no work when an exact count is passed to them
- Icon plotting is more robust.
- The OK button is no longer hilited when the keyboard is active.
- InputSprocket will now unload the drivers when the last fragment is unloaded
- InputSprocket no longer leaks memory when you quit in the suspended state
- when there are no devices to configure and ISpConfigure is called it will display a warning instead of doing nothing
- ISpSuspend no longer leaks 10,000 bytes every call
The following bugs are known:
-There is an incompatability with the mouse driver and the Kensignton trackball software that causes no mice devices to appear.
-There is a incompatability with the Kensington trackball that causes an extra mouse device to appear when the hardware is installed and the software is not installed.
InputSprocket 1.0
Release Notes
-----------------
Please report all bugs to sprockets@adr.apple.com!
Release Components
------------------
InputSprocket Release Notes - this file
InputSprocket.h - the header file to compile with
InputSprocketLib - release version of the library
InputSprocketDebugLib - debugging version of the library
InputSprocketStubLib - version of the library to link to
InputSprocket Keyboard - keyboard plug-in
InputSprocket Mouse - mouse plug-in
InputSprocketTest - test program
InputSprocketTest.ยต - Metrowerks 8 project to build test
InputSprocketTest Sources - sources for test program
Place InputSprocket Keyboard, InputSprocket Mouse and InputSprocketLib or
InputSprocketDebugLib in the Extensions folder. Place InputSprocket.h in
your development environment's C Headers folder. Place InputSprocketStubLib
in your development environment's Libraries folder.
WARNING: don't place both the debugging and non-debugging versions of the
library in the search path or you will not be sure which version you will be
using.
Dependencies
------------
InputSprocket requires the latest Universal Headers -- version 2.1.2 or later.
You can find them on E.T.O. #20, the MacOS SDK CD-ROMs, Apple's web-site, or
a number of other locations. If you have a problem with the "AbsoluteTime"
type usage, then you aren't using the latest Types.h file.
Compatability with Prereleases
------------------------------
InputSprocket 1.0 is not compatible with any of the pre-release versions of
InputSprocket. You should throw out all DR versions.
Changes to 'setl' Resource
--------------------------
The format for the set list resource ('setl') was changed at the last minute.
A resedit TMPL resource is automatically installed in the preference file and
the format is as follows:
-- header --
Version (4 bytes) The current version is now 2.
Count (4 bytes)
-- each entry --
name (64 bytes) A pascal string
set length (4 bytes) The length of the set
device class (4 bytes) The device class of the device
device identifier (4 bytes) The device identifier of the device
flags (4 bytes) Same flags as in the header
reserved1 (4 bytes) Reserved by apple set to zero.
reserved2 (4 bytes) Reserved by apple set to zero.
reserved3 (4 bytes) Reserved by apple set to zero.
set resource id (2 bytes) The resource id of the set.
reserved4 (2 bytes) Reserved by apple set to zero.
Special Considerations
----------------------
- Your game should use the Escape key to pause and resume play. The
element that corresponds to the Escape key is labelled
ISpElementLabel_Start. If your game uses virtual elements then the
first button need that is labelled ISpElementLabel_Start is auto-
configured to the Escape key, and the user can't change this in
the ISpConfigure dialog.
- Your game may provide default and optional configurations for the
keyboard, the mouse and any other devices. This is done by including
'setl' and 'tset' resources a resource file, such as the application's,
that is open when ISpInit and ISpConfigure are called. Since the
format of the 'tset' resource is determined by the device, it is
easiest to use the configuration dialog to establish the desired
configurations then copy them from the Preferences file into your
resource file.
1. Remove the InputSprocket Preferences file from the Preferences
folder.
2. Run your game, and invoke the ISpConfigure dialog.
3. Configure and save as many sets as you like for any and all
devices.
4. Quit.
5. Use ResEdit to move the 'setl' and 'tset' resources to your
resource file.
6. Edit the 'setl' resource using the 'TMPL' supplied in
InputSprocketSimpleTest.rsrc.
7. Change the flags field to $00000002 for the default entry for
a given device or $00000004 for any other entry for that
device.
8. Again remove the InputSprocket Preferences file from the
Preferences folder so you can test with a clean slate.
9. Rebuild your game and try out your new configurations.